package iit.projects.etaxi.model.dao;

import iit.projects.etaxi.model.dto.ReservationSCDO;
import iit.projects.etaxi.model.entity.Reservation;
import iit.projects.etaxi.model.exception.DuplicateReservationException;
import iit.projects.etaxi.model.exception.ReservationNotFoundException;

import java.util.Date;
import java.util.List;

public interface ReservationDao {
	
	public Reservation createReservation(Reservation reservation) throws DuplicateReservationException;
	
	public Reservation findByCode(String code) throws ReservationNotFoundException;
	
	public List<Reservation> findReservationsByStatusAndTime(String status, Date startTime, Date endTime);
	
	public Reservation updateReservation(Reservation reservation);
	
	public List<Reservation> searchReservations(ReservationSCDO reservationSCDO);
	
	public List<Reservation> findReservationsBefore(String status, Date time);

}
